class Backend:
    def fast_login(self, config):
        pass

    pass

class Course:
    pass

class AssignmentGrade:
    def __init__(self, name, grade):
        self.name = name
        self.grade = grade

class CategoryGrade:
    def __init__(self, name, weight, grades):
        self.name = name
        self.weight = weight
        self.grades = grades

    @property
    def mean(self):
        accumulator = 0

        for grade in self.grades:
            accumulator += grade.grade

        return accumulator / len(self.grades)

class Resource:
    def __init__(self, name):
        self.name = name

class ResourceRawHTML(Resource):
    def __init__(self, name, html):
        self.name = name
        self.html = html

class ResourceCategory(Resource):
    def __init__(self, name, children, contents):
        self.name = name
        self.children = children
        self.contents = contents

class ResourcePlain(Resource):
    def __init__(self, name, text):
        self.name = name
        self.text = text

class ResourceLink(Resource):
    def __init__(self, name, url):
        self.name = name
        self.url = url

class Task:
    def __init__(self, name, due_date):
        self.name = name
        self.due_date = due_date

    @property
    def resources(self):
        return None

class FileUpload:
    def __init__(self, id, name):
        self.id = id
        self.name = name

class Quiz:
    def __init__(self, id, name):
        self.id = id
        self.name = name

class MultipleChoiceQuestion:
    def __init__(self, prompt, responses):
        self.prompt = prompt
        self.responses = responses

class FreeResponseQuestion:
    def __init__(self, prompt):
        self.prompt = prompt

class MultipartQuestion:
    def __init__(self, parts):
        self.parts = parts

class Forum:
    def __init__(self, id, name):
        self.id = id
        self.name = name

class Post:
    def __init__(self, author, body, replies):
        self.author = author
        self.body = body
        self.replies = replies
